package com.itheima;

import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class AppForLifeCycle {
    public static void main( String[] args ) {
        //此处需要使用实现类类型，接口类型没有close方法
        // 创建容器  因为两个类进行了绑定  所以容器的初始和销毁都要执行  bean只是利用容器创建对象 从而能够实现类中方法
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        //创建对象
        BookService bookservice = (BookService) ctx.getBean("bookService");
        bookservice.save();

        /*BookDao bookDao = (BookDao) ctx.getBean("bookDao");
        bookDao.save();*/

        //注册关闭钩子函数，在虚拟机退出之前回调此函数，关闭容器
        //ctx.registerShutdownHook();
        //关闭容器
        ctx.close();
    }
}
